FIELD OF THE INVENTION
This invention relates to computer switches, and more particularly to KVM switches for multiple users.
Available and well-known devices to provide communication capability between a single workstation (of, for example, a monitor, keyboard and mouse), and a number of computers. Such KVM switches are commercially available and are sold as the Commander and XP products manufactured by Cybex Computer Products Corporation of Huntsville, Ala. KVM switches offer the particular advantage that a large number of servers can be controlled and monitored by a single workstation, such that large computer operations, such as server farms and network administrator areas, can be used in a space-efficient manner to accommodate more computers and less workstations.
Some KVM switches can accommodate more than one user, including the XP switch. With the multi-user KVM switches, instead of just one user having access to many different attached computers multiple users can simultaneously access different computers in the system. In some such KVM switches, if two or more users need to access the same computer at the same time, they can share access through the KVM switch. Typically, in such sharing arrangements, each user receives the computer video signal, but only one user enters data at any given moment.
The KVM switch also acts as an interface between disparate computers and workstations. It is foreseeable, for example, that a workstation may have a certain type of keyboard and mouse that would be incompatible with one of the computers attached to the KVM switch if the keyboard/mouse were directly connected to the computer. For example, one type of keyboard available in the marketplace is the so-called PC keyboard, which is different in its data communication protocols than, for example, a so-called Sun keyboard. By design, PC keyboards operator according to a data protocol consistent with PC computers and Sun keyboards operate according to a different data protocol for Sun computers. If one were to hook-up a Sun keyboard to a PC computer, or a PC keyboard to a Sun computer, communications errors would result between the peripheral device and the computer. The KVM switch has a principle responsibility of ensuring compatibility with a variety of different keyboards and mouse and with a variety of different computers. Typically, KVM switches provide the functionality of translating keyboard/mouse data structures from their inherent type to a type desired by a selected computer, such that any keyboard/mouse type can communicate with any other computer type through the KVM switch. With KVM switches, a PC keyboard and mouse can operate a Sun server as easily as a Sun keyboard and mouse will operate an attached PC computer.
There are thus different types of computers that may be utilized with a KVM switch. The KVM switch has as one of its functions a translation of incompatible mouse protocols into compatible ones for the computer selected through the KVM switch. Such mouse types include, for example, Microsoft Intellimouse, IBM Scrollpoint, Logitech Mouse Man+, Logitech Marble+, Logitech MarbleFX and the Kensington Expert Mouse. There are, of course, many other mouse types available, and one can expect that many mouse types will be developed in the future that may come within the context of the present descriptions. That is, the present invention is not limited to any particular kind of mouse or any set of mice types, but will have applicability to many different mice types and many different sets of mice types within the context of the functionality of the present invention described herein.
In a typical system, a user is given an opportunity to select a mouse type (usually by selecting a mouse driver file associated with the mouse type) that the KVM switch can use to identify the mouse type and perform appropriate translations for the selected computer. In the present invention, the mouse type is determined by the KVM switch through a pattern of inquiry/response to a connected mouse which inquiries/responses are then compared to an hierarchical ranking structure to determine the mouse type of the connected mouse.
The present invention will also address problems associated with handling multiple different user mouse controllers used by multiple users into the same KVM switch. In such a case, the KVM switch must deal with the different kinds of mouse protocols for sending data that may exist between the two mouse controllers connected to the user input ports. Certain prior KVM switches have claimed to support all mouse controller types, but in reality only substitute a known mouse control protocol that may be a subset of an actual mouse protocol for the mouse attached to the input port. The mouse functionality ranking of the present invention identifies a particular method that effectively ranks mouse controllers based on certain identifiable features and then chooses a mouse protocol based on the "highest" ranking mouse protocol associated with the tested features.
Further, in accordance with one aspect of the present invention, the KVM switch provides flash memory availability into which the mouse ranking chart may be stored. Using flash memory, the mouse ranking protocols can be changed in accordance with new mouse protocol introductions (i.e., new third party mouse products being introduced into the market) so that the presently described KVM switch can continue to identify which mouse protocol is appropriate for even newly introduced mice connected to a KVM user port.
In essence, according to the preferred embodiment of the present invention, the KVM switch performs a hierarchical examination from the highest ranking mouse to the lowest ranking mouse to determine an appropriate protocol scheme being employed by a particular mouse so the KVM switch can communicate (or translate) that mouse scheme to the currently selected computer. The examination essentially is a set of questions that the KVM switch asks the mouse, beginning with the most elaborate protocol question, and ending with the decision that the mouse is simply a two button mouse. In the first instance, the KVM switch requests a response to an elaborate mouse protocol inquiry and then awaits a response from the mouse. If the mouse responds appropriately, the KVM switch concludes that the mouse is the elaborate type mouse. On the other hand, if the mouse does not respond appropriately, the KVM switch moves to the next level inquiry/response in the hierarchical examination.
As described above, the mouse drivers for the various types of mice that can be used with associated computers will vary depending on the mouse types connected to the input ports of the KVM switch. Just by way of example only, one such mouse, the so-called PS/2 mouse protocols are described in IBM PS/2 Mouse Technical Reference document, the entire contents of which are incorporated herein by reference. As described in that document, the PS/2 mouse protocol dictates certain command structures, data structures, error handling protocols, and data transmission characteristics, among other protocols. When a computer is compatible only with the PS/2 protocol (or an application is compatible only with the PS/2 protocol), the KVM switch must provide the computer with mouse commands translated to the PS/2 protocol in order to be effective, regardless of the mouse type that the KVM switch is actually receiving commands in accordance with.